package org.dxy.infrastructure.persistent.po.query;


import com.baomidou.mybatisplus.annotation.*;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

/**
 * @ description:
 * 工位运行时状态表
 * 记录工位当前实时运行信息
 * @ author: dxy
 * @ createTime: 2025/10/18 23:50
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@TableName("view_workstation_runtime")
public class WorkstationRuntimeViewPo {
    /**
     * 工位ID（与 workstation_basic 表一一对应）
     */
    @TableId(type = IdType.ASSIGN_ID)
    private Long workstationId;

    /**
     * 当前操作ID（对应 operation 表的主键）
     */
    private Long currentOperationId;

    /**
     * 当前工单号
     */
    private String currentWorkOrderCode;

    /**
     * 当前进站时间
     */
    private LocalDateTime currentInTime;

    /**
     * 当前出站时间
     */
    private LocalDateTime currentOutTime;

    /**
     * 当前状态，例如：IN_PROGRESS、WAITING、COMPLETED、FAULT
     */
    private String currentStatus;

    /**
     * 当前操作员姓名
     */
    private String currentOperatorName;

    /**
     * 当前产品序列号
     */
    @TableField(exist = false)
    private String serialNumber;

    /**
     * 工位名称（关联查询字段）
     */
    @TableField(exist = false)
    private String workstationName;

    /**
     * 工位编码（关联查询字段）
     */
    @TableField(exist = false)
    private String workstationCode;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createdTime;

    /** 修改人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updatedTime;

    /** 逻辑删除标识 0-未删除 1-已删除 */
    @TableLogic
    private Integer deleted;
}
